This invention relates to data processing equipment and more particularly to circuits for storing a diagnostic program on a Read-Only Memory device within the central processing unit (CPU). Upon an appropriate setting of control panel switches, this diagnostic program may be transferred to Main Memory and executed.
In a data processng installation containing a microprogrammable CPU, there are three kinds of diagnostic programs that may be used. One is the micro-coded diagnostic program contained in the Control Memory of the CPU. At predetermined timed intervals or upon the occurrence of predetermined events and switch positions, the CPU will execute its internal micro-coded diagnostic program. This micro program may either be brief or extensive and may test the data processing capability of either the CPU or the entire data processing system. One shortcoming of this kind of micro-coded diagnostic program is that it does not test the ability of the system to execute a program contained in Main Memory.
The second, and most common, form of diagnostic program is written into Main Memory, may be implemented to test any part of the data processing system or the entire system, may be on-line or off-line, and may be instituted on the occurrence of any predetermined set of conditions. The problem with this form of diagnostic program is that it must be loaded from a peripheral device and therefore the existence of this program in memory is dependent upon the proper operation of the CPU, the Main Memory, at least one controller and at least one peripheral device.
A third form of diagnostic program is one that is written into Main Memory in permanent form. In a core memory, for instance, that portion of memory containing the diagnostic program may be wired such that the contents of memory cannot be changed. A diagnostic program implemented in this fashion would not be dependent upon an operable peripheral device and controller, and would test the CPU's ability to execute a program contained in Main Memory. However, the portion of memory used in this manner becomes dedicated to the diagnostic program and can not be erased and used for application programs upon the successful completion of the diagnostic test. Furthermore, since the program is not modifiable the program's testing ability is not as powerful as it could otherwise have been since the program must perform without the benefit of self-modifying instruction sets which increase the power and flexibility of the program.
Thus, it can be seen that in the prior art there is no capability for testing of a stand-alone computer by means of an erasable diagnostic program located in Main Memory.